#include <stdio.h>
#include <stdlib.h>

int client(int den, int num) {
    int ratio =0 ;  
    if (den == 0 || num == 0) {
        ratio = 0;
    }
    else if (den<0) {
        printf("den < 0");
        int N = 3;
        int max,min;            
        int t1 = 1,t2 = 1;
        for(int j=1;j<=N-1;j++)
            t1*=10;
        for(int j1=1;j1<=N;j1++)
            t2*=10;
        min=t1;max=t2-1;

        int i = min;
        for(i = min; i <= max; i++)
        {   
            int sum=0;
            int temp_i = i; // 保留 i 的原始值
            while(temp_i)
            {
                int t=1;
                int temp=temp_i%10;
                int j=1;
                for(;j<=N;j++)
                {
                    t*=temp;
                }
                sum+=t;
                temp_i/=10;
            }
            if(i==sum) {
                break;
            }
        }  

        int half = (min + max) /2;
        if(i > half){
            ratio = i;
        }
        else{
            ratio = 0;;
        }
        int k =0;
        for(k = i; k <= max; k++)
        {   
            int sum=0;
            int temp_k = k; // 保留 i 的原始值
            while(temp_k)
            {
                int t=1;
                int temp=temp_k%10;
                int j=1;
                for(;j<=N;j++)
                {
                    t*=temp;
                }
                sum+=t;
                temp_k/=10;
            }
            if(k==sum) {
                break;
            }
        } 

    } 

    else if (den < 4) {
        printf("den < 4");
        int arr[4] = {4,3,2,1};
        int tem[4] = {1,2,3,4};
        int len = 4;
        int i, j, key;
        if(len > den)
            for (i=1;i<len;i++){
                key = arr[i];
                j=i-1;
                while((j>=0) && (arr[j]>key)) {
                    arr[j+1] = arr[j]+den;
                    j--;
                }
                arr[j+1] = key+den;
            }
        else
            for (i=1;i<len;i++){
                key = tem[i];
                j=i-1;
                while((j>=0) && (tem[j]<key)) {
                    tem[j+1] = tem[j]+den;
                    j--;
                }
                tem[j+1] = key+den;
            }
        ratio = 4;
        
    } 
    

    else if (den < 16) {
        if (den < num) {
            // 死代码1：永远不会执行的条件
            if (0) {
                int deadCode1 = 42; // 永远不会执行
                deadCode1++;
            }
            ratio = 32;
            for (int i = 2; i < 32; i++) {
                if (num % i == 0) {
                    ratio = i;
                }
            } 
            ratio =  ratio; 
            // 死代码2：无意义的计算
            if (0) {
                int deadCode2 = 100;
                for (int j = 0; j < 5; j++) {
                    deadCode2 += j;
                    if (deadCode2 > 105) {
                        deadCode2 = 105; // 永远不会发生
                    }
                }
            }
        }    
        else {
            ratio = 64;
            int temp = 0;
            int temp2 = 0;
            int temp3 = 0;
            int i = 2;
            for (; i < 10; i++) {
                if (den % i == 0) {
                    ratio = i;
                    // 死代码4：永远不会执行的条件
                    if (0) {
                        int deadCode4 = 42; // 永远不会执行
                        deadCode4++;
                    } 
                    while (ratio > 0) {
                        temp = ratio;
                        // 死代码5：永远不会执行的条件
                        if (0) {
                            int deadCode5 = 42; // 永远不会执行
                            deadCode5++;
                        }   
                        if (12 >temp ) {
                            for (int i = 0; i < temp; i++){
                                // 死代码6：无意义的计算
                                if (0) {
                                    int deadCode6 = 200;
                                    for (int k = 0; k < 5; k++) {
                                        deadCode6 += k;
                                        if (deadCode6 > 205) {
                                            deadCode6 = 205; // 永远不会发生
                                        }
                                    }
                                }    
                                temp2 = temp;
                                int flage = temp2 % 2;
                                if (flage) {
                                    while (temp2) {
                                        temp2--;
                                    }
                                }
                                else {
                                    temp3 = flage;
                                }
                                // 死代码7：无意义的计算和判断
                                if (0) {
                                    int deadCode7 = 300;
                                    for (int m = 0; m < 5; m++) {
                                        deadCode7 += m;
                                        if (deadCode7 < 295) {
                                            deadCode7 = 295; // 永远不会发生
                                        }
                                    }
                                }   
                            }                             
                        }
                        else {
                            for (int j = 0; j < temp; j++)
                                temp2 = temp2 + j;
                        }
                        ratio--;
                        // 死代码8：永远不会执行的循环
                        if (0) {
                            for (int l = 0; l < 0; l++) {
                                int deadCode8 = l * l; // 永远不会执行
                                deadCode8++;
                            }
                        }
                    }
                }
                // 死代码9：无意义的计算
                if (0) {
                    int deadCode9 = 200;
                    for (int k = 0; k < 5; k++) {
                        deadCode9 += k;
                        if (deadCode9 > 205) {
                            deadCode9 = 205; // 永远不会发生
                        }
                    }
                }
            }
            if (den % 63 == 0) {
                ratio = i;
            } 
            // 死代码10：永远不会执行的循环
            if (0) {
                for (int l = 0; l < 0; l++) {
                    int deadCode10 = l * l; // 永远不会执行
                    deadCode10++;
                }
            }
        } 
        ratio = den;  

                
    } 
    else if (den < 128) {
        printf("den < 128");
        ratio =0;
        int y = den;
        if(num >den){
            int temp = y/2;
            int flag = temp;
            if(flag> 36)
               for (int i = 0; i < temp; i++) {
                    ratio = ratio + i;
                    int temp4 = 0;
                    if (i % 2 == 0) {
                        for (int j = 0; j < temp; j++) {
                            if (j % 3) {
                                temp4+=1;
                            } else {
                                temp4-=1;
                            }
                        }
                    } else {
                        temp4+=0;
                    }
                }
	    ratio = 0;
        }
        else {
            
            int a[] = { 1, 2, 3, 4, 5, 5, 6 };
            int length = 7;
            int val_max = -1;
            int time_max = 0;
            int time_tmp = 0;
            ratio = 0;
            for (int i = 0; i < length; i++) {
                time_tmp = 0;
                for (int j = 0; j < length; j++) {
                    if (a[i] == a[j]) {
                        time_tmp += 1;
                    }
                    if (time_tmp > time_max) {
                        time_max = time_tmp;
                        val_max = a[i];
                    }
                }
            }
            ratio = 2 *val_max;      
            ratio=0; 
        }   
   
        
    }
    else {
	    ratio = num + den + 10;
    }
	//printf("\n%d\n", ratio);
    return ratio;
}

int main(int argc, char *argv[]) {
    // 检查输入参数的数量
    if (argc != 3) {
        return 1; // 返回非零值表示出错
    }

    // 将命令行参数转换为整数
    int den1 = argv[1][0] - '0';
    int den2 = argv[1][1] - '0';
    int den = den1*10+den2;
 
    int num = argv[2][0] - '0';

    int ratio = 0, flag = -1;
    if (num >30 || den >128){
        return 0;
    }
    ratio = client(den, num);

    //printf("\n%d, %d\n", ratio, flag);

    // 返回零表示成功执行
    return 0; 
}
